// Copyright (c) Appeon. All rights reserved.
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.


// Generated from CommonParser.g4 by ANTLR 4.7.2

// Unreachable code detected
#pragma warning disable 0162
// The variable '...' is assigned but its value is never used
#pragma warning disable 0219
// Missing XML comment for publicly visible type or member '...'
#pragma warning disable 1591
// Ambiguous reference in cref attribute
#pragma warning disable 419

namespace Common.Grammar.Antlr
{
    using Antlr4.Runtime.Misc;
    using Antlr4.Runtime.Tree;

    /// <summary>
    /// This interface defines a complete generic visitor for a parse tree produced
    /// by <see cref="CommonParser"/>.
    /// </summary>
    /// <typeparam name="Result">The return type of the visit operation.</typeparam>
    [System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.7.2")]
    [System.CLSCompliant(false)]
#pragma warning disable CS3021 // Type or member does not need a CLSCompliant attribute because the assembly does not have a CLSCompliant attribute
    public interface ICommonParserVisitor<Result> : IParseTreeVisitor<Result>
    {
#pragma warning restore CS3021 // Type or member does not need a CLSCompliant attribute because the assembly does not have a CLSCompliant attribute
        /// <summary>
        /// Visit a parse tree produced by the <c>expression_atom</c>
        /// labeled alternative in <see cref="CommonParser.expression"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_atom([NotNull] CommonParser.Expression_atomContext context);
        /// <summary>
        /// Visit a parse tree produced by the <c>expression_parentheses</c>
        /// labeled alternative in <see cref="CommonParser.expression"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_parentheses([NotNull] CommonParser.Expression_parenthesesContext context);
        /// <summary>
        /// Visit a parse tree produced by the <c>expression_not</c>
        /// labeled alternative in <see cref="CommonParser.expression"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_not([NotNull] CommonParser.Expression_notContext context);
        /// <summary>
        /// Visit a parse tree produced by the <c>identifier</c>
        /// labeled alternative in <see cref="CommonParser.expression"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitIdentifier([NotNull] CommonParser.IdentifierContext context);
        /// <summary>
        /// Visit a parse tree produced by the <c>expression_andor</c>
        /// labeled alternative in <see cref="CommonParser.expression"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_andor([NotNull] CommonParser.Expression_andorContext context);
        /// <summary>
        /// Visit a parse tree produced by the <c>expression_relational</c>
        /// labeled alternative in <see cref="CommonParser.expression"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_relational([NotNull] CommonParser.Expression_relationalContext context);
        /// <summary>
        /// Visit a parse tree produced by the <c>expression_ternary</c>
        /// labeled alternative in <see cref="CommonParser.expression"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_ternary([NotNull] CommonParser.Expression_ternaryContext context);
        /// <summary>
        /// Visit a parse tree produced by the <c>expression_multiplicative</c>
        /// labeled alternative in <see cref="CommonParser.expression"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_multiplicative([NotNull] CommonParser.Expression_multiplicativeContext context);
        /// <summary>
        /// Visit a parse tree produced by the <c>expression_unitary</c>
        /// labeled alternative in <see cref="CommonParser.expression"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_unitary([NotNull] CommonParser.Expression_unitaryContext context);
        /// <summary>
        /// Visit a parse tree produced by the <c>expression_caret</c>
        /// labeled alternative in <see cref="CommonParser.expression"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_caret([NotNull] CommonParser.Expression_caretContext context);
        /// <summary>
        /// Visit a parse tree produced by the <c>expression_additive</c>
        /// labeled alternative in <see cref="CommonParser.expression"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_additive([NotNull] CommonParser.Expression_additiveContext context);
        /// <summary>
        /// Visit a parse tree produced by <see cref="CommonParser.expression_primary"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_primary([NotNull] CommonParser.Expression_primaryContext context);
        /// <summary>
        /// Visit a parse tree produced by <see cref="CommonParser.expression_new"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_new([NotNull] CommonParser.Expression_newContext context);
        /// <summary>
        /// Visit a parse tree produced by <see cref="CommonParser.expression_new_props"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_new_props([NotNull] CommonParser.Expression_new_propsContext context);
        /// <summary>
        /// Visit a parse tree produced by <see cref="CommonParser.expression_assign"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_assign([NotNull] CommonParser.Expression_assignContext context);
        /// <summary>
        /// Visit a parse tree produced by <see cref="CommonParser.expression_other_function"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_other_function([NotNull] CommonParser.Expression_other_functionContext context);
        /// <summary>
        /// Visit a parse tree produced by <see cref="CommonParser.expression_list"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitExpression_list([NotNull] CommonParser.Expression_listContext context);
        /// <summary>
        /// Visit a parse tree produced by <see cref="CommonParser.literal"/>.
        /// </summary>
        /// <param name="context">The parse tree.</param>
        /// <return>The visitor result.</return>
        Result VisitLiteral([NotNull] CommonParser.LiteralContext context);
    }
} // namespace Common.Grammar.Antlr
